/**
 * Subtipo.java 
 * Clase que respresenta un subtipo de producto dentro de la cada tipo Restaurantes, Espectáculos, Actividades
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 */

package ocio.beans;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * Respresenta una clase de un segundo nivel de clasificación de los tipos de productos.
 * Dentro de cada tipo Restaurantes, Espectáculos y Actividades se establecen subtipos
 * para una clasificación más detallada.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Producto
 */
public class Subtipo implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private int id;
	private String nombre;
	private int tipo; //1,2,3
	private Set<Subscripcion> subscripciones = new HashSet<Subscripcion>(0);
	private Set<Producto> productos = new HashSet<Producto>(0);
	
	/**
	 * Constructor de Clase.	
	 */
	public Subtipo(){
	}
	
	 /**
	 * Método getter.         
	 * @return id Devuelve el identificador único en base de datos del subtipo.
	 */ 
	public int getId() {
		return id;
	}
	
	/**
	 * Método setter.         
	 * @param id Asigna al subtipo un identificador único para la base de datos.
	 */ 
	public void setId(int id) {
		this.id = id;
	}
	
	 /**
	 * Método getter.         
	 * @return nombre Devuelve el nombre del subtipo.
	 */ 
	public String getNombre() {
		return nombre;
	}
	
	/**
	 * Método setter.         
	 * @param nombre Establece un nombre para el subtipo.
	 */ 
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	 /**
	 * Método getter.         
	 * @return tipo Devuelve el tipo al que corresponde el subtipo,
	 * 1 para Restaurante, 2 para Espectáculos y 3 para Actividades.
	 */ 
	public int getTipo() {
		return tipo;
	}
	
	/**
	 * Método setter.         
	 * @param tipo Establece el tipo al que corresponde el subtipo,
	 * 1 para Restaurante, 2 para Espectáculos y 3 para Actividades.
	 */ 
	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	
	 /**
	 * Método getter.         
	 * @return subscripciones Devuelve el conjunto de subscripciones a este subtipo de productos.
	 */ 
	public Set<Subscripcion> getSubscripciones() {
		return subscripciones;
	}
	
	/**
	 * Método setter.         
	 * @param subscripciones Establece el conjunto de subscripciones a este subtipo de productos.
	 */ 
	public void setSubscripciones(Set<Subscripcion> subscripciones) {
		this.subscripciones = subscripciones;
	}
	
	 /**
	 * Método getter.         
	 * @return productos Devuelve el conjunto de productos de este subtipo.
	 */ 
	public Set<Producto> getProductos() {
		return productos;
	}
	
	/**
	 * Método setter.         
	 * @param productos Establece el conjunto de productos de este subtipo.
	 */ 
	public void setProductos(Set<Producto> productos) {
		this.productos = productos;
	}
	
}
